home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / Apple II / Essentials / APW Interfaces / CInclude / MiscTool.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-02-26  |  12.7 KB  |  391 lines  |  [TEXT/MPS ]

  1. /********************************************
  2. ; File: MiscTool.h
  3. ;
  4. ;
  5. ; Copyright Apple Computer, Inc.1986-92
  6. ; All Rights Reserved
  7. ;
  8. ********************************************/
  9. #ifndef __TYPES__
  10. #include <TYPES.h>
  11. #endif
  12.  
  13. #ifndef __MISCTOOL__
  14. #define __MISCTOOL__
  15.  
  16.  
  17. /* Error codes */
  18. #define badInputErr 0x0301  /* bad input parameter */
  19. #define noDevParamErr 0x0302  /* no device for input parameter */
  20. #define taskInstlErr 0x0303  /* task already installed error */
  21. #define noSigTaskErr 0x0304  /* no signature in task header */
  22. #define queueDmgdErr 0x0305  /* queue has been damaged error */
  23. #define taskNtFdErr 0x0306  /* task was not found error */
  24. #define firmTaskErr 0x0307  /* firmware task was unsuccessful */
  25. #define hbQueueBadErr 0x0308  /* heartbeat queue damaged */
  26. #define unCnctdDevErr 0x0309  /* attempted to dispatch to unconnected device */
  27. #define idTagNtAvlErr 0x030B  /* ID tag not available */
  28. #define notInList 0x0380
  29. #define invalidTag 0x0381  /* correct signature value not found in header */
  30. #define alreadyInQueue 0x0382
  31. #define badTimeVerb 0x0390
  32. #define badTimeData 0x0391
  33.  
  34. /* System Fail Codes */
  35. #define pdosUnClmdIntErr 0x0001  /* ProDOS unclaimed interrupt error */
  36. #define divByZeroErr 0x0004  /* divide by zero error */
  37. #define pdosVCBErr 0x000A  /* ProDOS VCB unusable */
  38. #define pdosFCBErr 0x000B  /* ProDOS FCB unusable */
  39. #define pdosBlk0Err 0x000C  /* ProDOS block zero allocated illegally */
  40. #define pdosIntShdwErr 0x000D  /* ProDOS interrupt w/ shadowing off */
  41. #define stupVolMntErr 0x0100  /* can't mount system startup volume */
  42.  
  43. /* Battery Ram Parameter Reference Numbers */
  44. #define p1PrntModem 0x0000
  45. #define p1LineLnth 0x0001
  46. #define p1DelLine 0x0002
  47. #define p1AddLine 0x0003
  48. #define p1Echo 0x0004
  49. #define p1Buffer 0x0005
  50. #define p1Baud 0x0006
  51. #define p1DtStpBits 0x0007
  52. #define p1Parity 0x0008
  53. #define p1DCDHndShk 0x0009
  54. #define p1DSRHndShk 0x000A
  55. #define p1XnfHndShk 0x000B
  56. #define p2PrntModem 0x000C
  57. #define p2LineLnth 0x000D
  58. #define p2DelLine 0x000E
  59. #define p2AddLine 0x000F
  60. #define p2Echo 0x0010
  61. #define p2Buffer 0x0011
  62. #define p2Baud 0x0012
  63. #define p2DtStpBits 0x0013
  64. #define p2Parity 0x0014
  65. #define p2DCDHndShk 0x0015
  66. #define p2DSRHndShk 0x0016
  67. #define p2XnfHndShk 0x0017
  68. #define dspColMono 0x0018
  69. #define dsp40or80 0x0019
  70. #define dspTxtColor 0x001A
  71. #define dspBckColor 0x001B
  72. #define dspBrdColor 0x001C
  73. #define hrtz50or60 0x001D
  74. #define userVolume 0x001E
  75. #define bellVolume 0x001F
  76. #define sysSpeed 0x0020
  77. #define slt1intExt 0x0021
  78. #define slt2intExt 0x0022
  79. #define slt3intExt 0x0023
  80. #define slt4intExt 0x0024
  81. #define slt5intExt 0x0025
  82. #define slt6intExt 0x0026
  83. #define slt7intExt 0x0027
  84. #define startupSlt 0x0028
  85. #define txtDspLang 0x0029
  86. #define kyBdLang 0x002A
  87. #define kyBdBuffer 0x002B
  88. #define kyBdRepSpd 0x002C
  89. #define kyBdRepDel 0x002D
  90. #define dblClkTime 0x002E
  91. #define flashRate 0x002F
  92. #define shftCpsLCas 0x0030
  93. #define fstSpDelKey 0x0031
  94. #define dualSpeed 0x0032
  95. #define hiMouseRes 0x0033
  96. #define dateFormat 0x0034
  97. #define clockFormat 0x0035
  98. #define rdMinRam 0x0036
  99. #define rdMaxRam 0x0037
  100. #define langCount 0x0038
  101. #define lang1 0x0039
  102. #define lang2 0x003A
  103. #define lang3 0x003B
  104. #define lang4 0x003C
  105. #define lang5 0x003D
  106. #define lang6 0x003E
  107. #define lang7 0x003F
  108. #define lang8 0x0040
  109. #define layoutCount 0x0041
  110. #define layout1 0x0042
  111. #define layout2 0x0043
  112. #define layout3 0x0044
  113. #define layout4 0x0045
  114. #define layout5 0x0046
  115. #define layout6 0x0047
  116. #define layout7 0x0048
  117. #define layout8 0x0049
  118. #define layout9 0x004A
  119. #define layout10 0x004B
  120. #define layout11 0x004C
  121. #define layout12 0x004D
  122. #define layout13 0x004E
  123. #define layout14 0x004F
  124. #define layout15 0x0050
  125. #define layout16 0x0051
  126. #define aTalkNodeNo 0x0080
  127.  
  128. /* GetAddr Parameter Reference Numbers */
  129. #define irqIntFlag 0x0000
  130. #define irqDataReg 0x0001
  131. #define irqSerial1 0x0002
  132. #define irqSerial2 0x0003
  133. #define irqAplTlkHi 0x0004
  134. #define tickCnt 0x0005
  135. #define irqVolume 0x0006
  136. #define irqActive 0x0007
  137. #define irqSndData 0x0008
  138. #define brkVar 0x0009
  139. #define evMgrData 0x000A
  140. #define mouseSlot 0x000B
  141. #define mouseClamps 0x000C
  142. #define absClamps 0x000D
  143. #define sccIntFlag 0x000E
  144.  
  145. /* Hardware Interrupt Status Numbers */
  146. #define extVGCInt 0x01  /* Returned by GetIRQEnable */
  147. #define scanLineInt 0x02  /* Returned by GetIRQEnable */
  148. #define adbDataInt 0x04  /* Returned by GetIRQEnable */
  149. #define ADTBDataInt 0x04  /* maintained for compatiblity with old interfaces */
  150. #define oneSecInt 0x10  /* Returned by GetIRQEnable */
  151. #define quartSecInt 0x20  /* Returned by GetIRQEnable */
  152. #define vbInt 0x40  /* Returned by GetIRQEnable */
  153. #define kbdInt 0x80  /* Returned by GetIRQEnable */
  154.  
  155. /* Interrupt Reference Numbers */
  156. #define kybdEnable 0x0000  /* Parameter to IntSource */
  157. #define kybdDisable 0x0001  /* Parameter to IntSource */
  158. #define vblEnable 0x0002  /* Parameter to IntSource */
  159. #define vblDisable 0x0003  /* Parameter to IntSource */
  160. #define qSecEnable 0x0004  /* Parameter to IntSource */
  161. #define qSecDisable 0x0005  /* Parameter to IntSource */
  162. #define oSecEnable 0x0006  /* Parameter to IntSource */
  163. #define oSecDisable 0x0007  /* Parameter to IntSource */
  164. #define adbEnable 0x000A  /* Parameter to IntSource */
  165. #define adbDisable 0x000B  /* Parameter to IntSource */
  166. #define scLnEnable 0x000C  /* Parameter to IntSource */
  167. #define scLnDisable 0x000D  /* Parameter to IntSource */
  168. #define exVCGEnable 0x000E  /* Parameter to IntSource */
  169. #define exVCGDisable 0x000F  /* Parameter to IntSource */
  170.  
  171. /* Mouse Mode Values */
  172. #define mouseOff 0x0000
  173. #define transparent 0x0001
  174. #define transParnt 0x0001  /* (old name) */
  175. #define moveIntrpt 0x0003
  176. #define bttnIntrpt 0x0005
  177. #define bttnOrMove 0x0007
  178. #define mouseOffVI 0x0008
  179. #define transParntVI 0x0009  /* (old name) */
  180. #define transparentVI 0x0009
  181. #define moveIntrptVI 0x000B
  182. #define bttnIntrptVI 0x000D
  183. #define bttnOrMoveVI 0x000F
  184.  
  185. /* Vector Reference Numbers */
  186. #define toolLoc1 0x0000
  187. #define toolLoc2 0x0001
  188. #define usrTLoc1 0x0002
  189. #define usrTLoc2 0x0003
  190. #define intrptMgr 0x0004
  191. #define copMgr 0x0005
  192. #define abortMgr 0x0006
  193. #define _sysFailMgr 0x0007
  194. #define aTalkIntHnd 0x0008
  195. #define sccIntHnd 0x0009
  196. #define scLnIntHnd 0x000A
  197. #define sndIntHnd 0x000B
  198. #define vblIntHnd 0x000C
  199. #define mouseIntHnd 0x000D
  200. #define qSecIntHnd 0x000E
  201. #define kybdIntHnd 0x000F
  202. #define adbRBIHnd 0x0010
  203. #define adbSRQHnd 0x0011
  204. #define deskAccHnd 0x0012
  205. #define flshBufHnd 0x0013
  206. #define kybdMicHnd 0x0014
  207. #define oneSecHnd 0x0015
  208. #define extVCGHnd 0x0016
  209. #define otherIntHnd 0x0017
  210. #define crsrUpdtHnd 0x0018
  211. #define incBsyFlag 0x0019
  212. #define decBsyFlag 0x001A
  213. #define bellVector 0x001B
  214. #define breakVector 0x001C
  215. #define traceVector 0x001D
  216. #define stepVector 0x001E
  217. #define ctlYVector 0x0028
  218. #define proDOSVector 0x002A
  219. #define proDOSVctr 0x002A  /* for backward compatibility */
  220. #define osVector 0x002B
  221. #define msgPtrVector 0x002C
  222. #define msgPtrVctr 0x002C  /* for backward compatibility */
  223. #define memMoverVector 0x0080
  224. #define sysSpeedVector 0x0081
  225. #define slotArbiterVector 0x0082
  226. #define hiInterruptVector 0x0086
  227. #define midiInterruptVector 0x0087
  228.  
  229. /* ConvSeconds verbs */
  230. #define secs2TimeRec 0
  231. #define TimeRec2Secs 1
  232. #define secs2Text 2
  233. #define secs2ProDOS 4
  234. #define ProDOS2Secs 5
  235. #define getCurrTimeInSecs 6
  236. #define setCurrTimeInSecs 7
  237. #define ProDOS2TimeRec 8
  238. #define TimeRec2ProDOS 9
  239. #define secs2HCard 10
  240. #define HCard2Secs 11
  241.  
  242. /* SysBeep2 constants */
  243. #define sbSilence 0x8000
  244. #define sbDefer 0x4000
  245. #define sbAlertStage0 0x0000
  246. #define sbAlertStage1 0x0001
  247. #define sbAlertStage2 0x0002
  248. #define sbAlertStage3 0x0003
  249. #define sbOutsideWindow 0x0004
  250. #define sbOperationComplete 0x0005
  251. #define sbBadKeypress 0x0008
  252. #define sbBadInputValue 0x0009
  253. #define sbInputFieldFull 0x000A
  254. #define sbOperationImpossible 0x000B
  255. #define sbOperationFailed 0x000C
  256. #define sbGSOStoP8 0x0011
  257. #define sbP8toGSOS 0x0012
  258. #define sbDiskInserted 0x0013
  259. #define sbDiskEjected 0x0014
  260. #define sbSystemShutdown 0x0015
  261. #define sbDiskRequest 0x0030
  262. #define sbSystemStartup 0x0031
  263. #define sbSystemRestart 0x0032
  264. #define sbBadDisk 0x0033
  265. #define sbKeyClick 0x0034
  266. #define sbReturnKey 0x0035
  267. #define sbSpaceKey 0x0036
  268. #define sbWhooshOpen 0x0040
  269. #define sbWhooshClosed 0x0041
  270. #define sbFillTrash 0x0042
  271. #define sbEmptyTrash 0x0043
  272. #define sbAlertWindow 0x0050
  273. #define sbAlertStop 0x0052
  274. #define sbAlertNote 0x0053
  275. #define sbAlertCaution 0x0054
  276. #define sbScreenBlanking 0x0060
  277. #define sbScreenUnblanking 0x0061
  278. #define sbYouHaveMail 0x0100
  279. #define sbErrorWindowBase 0x0E00 /* uses $0Exx */
  280. #define sbErrorWindowOther 0x0EFF
  281.  
  282. /* StringToText constants */
  283. #define fAllowMouseText 0x8000
  284. #define fAllowLongerSubs 0x4000
  285. #define fForceLanguage 0x2000
  286. #define fPassThru 0x1000
  287.  
  288. struct ClampRec {
  289.    Word yMaxClamp; /*  */
  290.    Word yMinClamp; /*  */
  291.    Word xMaxClamp; /*  */
  292.    Word xMinClamp; /*  */
  293. } ;
  294. typedef struct ClampRec ClampRec, *ClampRecPtr, **ClampRecHndl;
  295. struct FWRec {
  296.    Word yRegExit; /*  */
  297.    Word xRegExit; /*  */
  298.    Word aRegExit; /*  */
  299.    Word status; /*  */
  300. } ;
  301. typedef struct FWRec FWRec, *FWRecPtr, **FWRecHndl;
  302. struct MouseRec {
  303.    Byte mouseMode; /*  */
  304.    Byte mouseStatus; /*  */
  305.    Word yPos; /*  */
  306.    Word xPos; /*  */
  307. } ;
  308. typedef struct MouseRec MouseRec, *MouseRecPtr, **MouseRecHndl;
  309. struct InterruptStateRec {
  310.    Word irq_A;
  311.    Word irq_X;
  312.    Word irq_Y;
  313.    Word irq_S;
  314.    Word irq_D;
  315.    Byte irq_P;
  316.    Byte irq_DB;
  317.    Byte irq_e;
  318.    Byte irq_K;
  319.    Word irq_PC;
  320.    Byte irq_state;
  321.    Word irq_shadow;
  322.    Byte irq_mslot;
  323. } ;
  324. typedef struct InterruptStateRec InterruptStateRec, *InterruptStateRecPtr, **InterruptStateRecHndl;
  325. struct QueueHeaderRec {
  326.    struct QueueHeaderRec *qNext; /*   */
  327.    Word reserved; /*   */
  328.    Word signature; /* Validates header - must be $A55A  */
  329. } ;
  330. typedef struct QueueHeaderRec QueueHeaderRec, *QueueHeaderRecPtr;
  331. extern pascal void AddToQueue() inline(0x2E03,dispatcher);
  332. extern pascal void ClampMouse() inline(0x1C03,dispatcher);
  333. extern pascal void ClearMouse() inline(0x1B03,dispatcher);
  334. extern pascal void ClrHeartBeat() inline(0x1403,dispatcher);
  335. extern pascal LongWord ConvSeconds() inline(0x3703,dispatcher);
  336. extern pascal void DelHeartBeat() inline(0x1303,dispatcher);
  337. extern pascal void DeleteFromQueue() inline(0x2F03,dispatcher);
  338. extern pascal void DeleteID() inline(0x2103,dispatcher);
  339. extern FWRec FWEntry();
  340. extern ClampRec GetAbsClamp();
  341. extern pascal Pointer GetAddr() inline(0x1603,dispatcher);
  342. extern pascal ProcPtr GetCodeResConverter() inline(0x3403,dispatcher);
  343. extern pascal Word GetIRQEnable() inline(0x2903,dispatcher);
  344. extern pascal Word GetIntStateRecSize() inline(0x3203,dispatcher);
  345. extern pascal void GetInterruptState() inline(0x3103,dispatcher);
  346. extern ClampRec GetMouseClamp();
  347. extern pascal Word GetNewID() inline(0x2003,dispatcher);
  348. extern pascal Pointer GetRomResource() inline(0x3503,dispatcher);
  349. extern pascal LongWord GetTick() inline(0x2503,dispatcher);
  350. extern pascal Pointer GetVector() inline(0x1103,dispatcher);
  351. extern pascal void HomeMouse() inline(0x1A03,dispatcher);
  352. extern pascal void InitMouse() inline(0x1803,dispatcher);
  353. extern pascal void IntSource() inline(0x2303,dispatcher);
  354. extern pascal void MTBootInit() inline(0x0103,dispatcher);
  355. extern pascal void MTReset() inline(0x0503,dispatcher);
  356. extern pascal void MTShutDown() inline(0x0303,dispatcher);
  357. extern pascal void MTStartUp() inline(0x0203,dispatcher);
  358. extern pascal Boolean MTStatus() inline(0x0603,dispatcher);
  359. extern pascal Word MTVersion() inline(0x0403,dispatcher);
  360. extern pascal Word Munger() inline(0x2803,dispatcher);
  361. extern pascal Word PackBytes() inline(0x2603,dispatcher);
  362. extern pascal void PosMouse() inline(0x1E03,dispatcher);
  363. extern pascal void ReadAsciiTime() inline(0x0F03,dispatcher);
  364. extern pascal Word ReadBParam() inline(0x0C03,dispatcher);
  365. extern pascal void ReadBRam() inline(0x0A03,dispatcher);
  366. extern MouseRec ReadMouse();
  367. extern MouseRec ReadMouse2();
  368. extern TimeRec ReadTimeHex();
  369. extern pascal void ReleaseRomResource() inline(0x3603,dispatcher);
  370. extern pascal Word ServeMouse() inline(0x1F03,dispatcher);
  371. extern void SetAbsClamp();
  372. extern pascal void SetHeartBeat() inline(0x1203,dispatcher);
  373. extern pascal void SetInterruptState() inline(0x3003,dispatcher);
  374. extern pascal void SetMouse() inline(0x1903,dispatcher);
  375. extern pascal void SetVector() inline(0x1003,dispatcher);
  376. extern pascal void StatusID() inline(0x2203,dispatcher);
  377. extern pascal void SysBeep() inline(0x2C03,dispatcher);
  378. extern pascal void SysFailMgr() inline(0x1503,dispatcher);
  379. extern pascal Word UnPackBytes() inline(0x2703,dispatcher);
  380. extern pascal void WriteBParam() inline(0x0B03,dispatcher);
  381. extern pascal void WriteBRam() inline(0x0903,dispatcher);
  382. extern void WriteTimeHex();
  383.  
  384. extern pascal void SysBeep2() inline(0x3803,dispatcher);
  385. extern pascal void VersionString() inline(0x3903,dispatcher);
  386. extern pascal Word WaitUntil() inline(0x3A03,dispatcher);
  387. extern pascal LongWord StringToText() inline(0x3B03,dispatcher);
  388. extern pascal void ShowBootInfo() inline(0x3C03,dispatcher);
  389. extern pascal Word ScanDevices() inline(0x3D03,dispatcher);
  390. #endif
  391.